/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package chequeTeatinos.beans;

import chequeTeatinos.ejb.EmpresaFacade;
import chequeTeatinos.ejb.OfertaFacade;
import chequeTeatinos.entities.Empresa;
import chequeTeatinos.entities.Oferta;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;

/**
 *
 * @author escabia
 */
@ManagedBean
@RequestScoped
public class AddOfertaBean implements Serializable{

    @EJB
    private EmpresaFacade empresaFacade;

    private Empresa selectedEmpresa;  
    private Integer selectedId;  
    
    @EJB
    private OfertaFacade ofertaFacade;
    
    
    private String nombre;
    private long existencias;
    private String descripcion;
    private Date fecha;  
    private Number precioofertado;
    private Number preciooriginal;
    private String tipo;
    private String empresa;
    
    /**
     * @return 
     */
    private int idnuevaoferta(){
        int idnueva = 0;
        List<Oferta> o = ofertaFacade.findAll();
        
        for(int i=0; i<o.size(); i++){
            if(idnueva < o.get(i).getId())
                idnueva = o.get(i).getId();
        }
        
        return idnueva+1;
    }
    
    /**
     * Creates a new instance of AddOfertaBean
     */
    public AddOfertaBean() {
    }
    
    public void crearOferta(){
        System.out.println("Oferta creada con precio");
        FacesMessage msg = new FacesMessage("Oferta creada");
        FacesContext.getCurrentInstance().addMessage(null, msg);
        
        Oferta offer = new Oferta();
        offer.setId(idnuevaoferta());//NO ES ASI
        offer.setNombreOferta(this.nombre);        

        offer.setExistencias((short)this.existencias);
        offer.setDescripcion(this.descripcion);
        offer.setPrecioOriginal(new BigDecimal(this.preciooriginal.toString()));
        offer.setPrecioConOferta(new BigDecimal(this.precioofertado.toString()));
        offer.setFechaValidez(this.fecha);
        offer.setTipo(this.tipo);
        
        offer.setEmpresa(empresaFacade.find(this.selectedId)); //Provisional
        ofertaFacade.create(offer);
    }

    public EmpresaFacade getEmpresaFacade() {
        return empresaFacade;
    }

    public void setEmpresaFacade(EmpresaFacade empresaFacade) {
        this.empresaFacade = empresaFacade;
    }

    public OfertaFacade getOfertaFacade() {
        return ofertaFacade;
    }

    public void setOfertaFacade(OfertaFacade ofertaFacade) {
        this.ofertaFacade = ofertaFacade;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public long getExistencias() {
        return existencias;
    }

    public void setExistencias(long existencias) {
        this.existencias = existencias;
    }

    public String getDescripcion() {
        return descripcion;
    }

    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }

    public Date getFecha() {
        return fecha;
    }

    public void setFecha(Date fecha) {
        this.fecha = fecha;
    }
    
    public Number getPrecioofertado() {
        return precioofertado;
    }

    public void setPrecioofertado(Number precioofertado) {
        this.precioofertado = precioofertado;
    }

    public Number getPreciooriginal() {
        return preciooriginal;
    }

    public void setPreciooriginal(Number preciooriginal) {
        this.preciooriginal = preciooriginal;
    }

    public String getTipo() {
        return tipo;
    }

    public void setTipo(String tipo) {
        this.tipo = tipo;
    }
    
    public String getEmpresa() {
        return empresa;
    }

    public void setEmpresa(String empresa) {
        this.empresa = empresa;
    }  

    public Empresa getSelectedEmpresa() {
        return selectedEmpresa;
    }

    public void setSelectedEmpresa(Empresa selectedEmpresa) {
        this.selectedEmpresa = selectedEmpresa;
    }

    public Integer getSelectedId() {
        return selectedId;
    }

    public void setSelectedId(Integer selectedId) {
        this.selectedId = selectedId;
    }
}
